package com.zf.generic;

import java.util.ArrayList;

/**
 * @author Zhou Feng
 */
public class TestGeneric {
    public static void main(String[] args) {
        TestGenericClazz.print("222");

        TestGenericClazz<String> stringTestGenericClazz = new TestGenericClazz<>();
        //接收返回值时 编译器会自动 在字节码中插入 类型检查
        String test = stringTestGenericClazz.test("22");
        System.out.println(test);


        // 类型擦除
        ArrayList<String> list = new ArrayList<>();
        System.out.println(ArrayList.class==list.getClass()); //true

        // int 和 Integer 的 class 对象不同
        System.out.println(int.class.getName()); // int
        System.out.println(Integer.class.getName()); // java.lang.Integer

        //int和Integer 数组对应的 class 对象 也不同
        int[] a = new int[3];
        System.out.println(a.getClass()); // [I
        Integer[] aa = new Integer[3];
        System.out.println(aa.getClass()); // [Ljava.lang.Integer
        String[] c = new String[3];
        System.out.println(c.getClass()); // [Ljava.lang.String

    }
}
